package com.zlm.user.emp.service;

import com.zlm.common.base.BaseService;
import com.zlm.common.base.PageEntity;
import com.zlm.common.dto.CoordinatesDto;
import com.zlm.common.dto.HxUserDto;
import com.zlm.common.dto.QqResponseDto;
import com.zlm.common.dto.userEmp.EmpInfoParamsDto;
import com.zlm.common.dto.WechatResultDto;
import com.zlm.user.emp.entity.SysEmpDO;
import com.zlm.common.dto.userEmp.SysEmpDto ;

import java.util.List;
import java.util.Map;

/**
 * @Author: duyufu
 * @Date: 2019/3/29 11:05
 */
public interface SysEmpService extends BaseService<SysEmpDO> {

    /**
     * 获取用户基础信息
     * @param mobile
     * @param password
     * @return
     */
    SysEmpDto queryEmpByMobileAndPassword(String mobile, String password);

    /**
     * 是否存在手机号
     * @param mobile
     * @return
     */
    boolean isExistMobile(String mobile);

    /**
     * 修改密码
     * @param mobile
     * @param password
     * @return
     */
    Integer updatePassword(String mobile, String password);

    /**
     * 微信注册用户
     * @param userInfo
     * @return
     */
    Integer wechatRegisterEmp(WechatResultDto userInfo);

    /**
     * 根据openid获取用户
     * @param emp
     * @return
     */
    SysEmpDto queryEmp(SysEmpDO emp);

    /**
     * QQ注册用户
     * @param userInfo
     */
    Integer qqRegisterEmp(QqResponseDto userInfo);

    /**
     * 根据主键查询用户
     * @param empId
     * @return
     */
    SysEmpDto queryEmpById(Integer empId);

    /**
     * 保存用户个人信息
     * @param empInfoParamsDto
     */
    void saveEmpInfo(EmpInfoParamsDto empInfoParamsDto);

    /**
     * 查询用户密码
     * @param empId
     * @return
     */
    String queryEmpPassword(Integer empId);

    /**
     * 修改密码
     * @param empId
     * @param newPassword
     */
    void updatePasswordByEmpId(Integer empId,String newPassword);

    /**
     * 查询用户
     * @param idNo
     * @return
     */
    SysEmpDO queryEmpByIdNo(String idNo);

    /**
     * 实名认证
     * @param empInfo
     */
    void realNameAuthentication(Map<String, Object> empInfo);

    /**
     * 根据身份证查询用户数量
     * @param idNo
     * @return
     */
    int countEmpByIdNo(String idNo);

    /**
     * 更新环信密码
     * @param empId
     * @param hxID
     * @param hxPassword
     */
    void updateHxPasswordByEmpId(Integer empId,String hxID, String hxPassword);

    /**
     * 搜索好友
     * @param keyword
     * @return
     */
    List<HxUserDto> searchFriend(String keyword);

    /**
     * 根据环信id查询用户
     * @param hxId
     * @return
     */
    HxUserDto queryHxUser(String hxId);

    /**
     * 查看附近人才
     * @param pageNumber
     * @param pageSize
     * @param coordinates
     * @return
     */
    PageEntity queryLocalEmp(Integer pageNumber, Integer pageSize, CoordinatesDto coordinates);
}
